package br.com.srv.componentes.motorista.dao;

import java.util.List;
import java.util.Map;

import br.com.srv.commons.dao.hibernate.BasicDAOImpl;
import br.com.srv.model.MotoristaTO;
import br.com.srv.model.PeriodoTO;

public class MotoristaDAOImpl extends BasicDAOImpl implements MotoristaDAO {

	public List<MotoristaTO> buscarMotoristas(MotoristaTO motoristaTO) throws Exception {
		String query = "SELECT motorista FROM MotoristaTO motorista ";
		
		int count = 0;
		
		if (motoristaTO.getNome() != null
				&& !motoristaTO.getNome().equals("")) {
			query = montarQuery(query, count);
			query += "motorista.nome like '" + motoristaTO.getNome() + "%'";
			count++;
		}
		
		if (motoristaTO.getCodigo() != null
				&& !motoristaTO.getCodigo().equals("")) {
			query = montarQuery(query, count);
			query += "motorista.codigo like '" + motoristaTO.getCodigo() + "%'";
			count++;
		}
		
		if (motoristaTO.getMatricula() != null
				&& !motoristaTO.getMatricula().equals("")) {
			query = montarQuery(query, count);
			query += "motorista.matricula like '" + motoristaTO.getMatricula() + "%'";
			count++;
		}
		
		if (motoristaTO.getStatus() != null) {
			query = montarQuery(query, count);
			query += "motorista.status = " + motoristaTO.getStatus();
			count++;
		}
		
//		if (motoristaTO.getClienteId() != null) {
//			query = montarQuery(query, count);
//			query += "motorista.clienteId = " + motoristaTO.getClienteId();
//			count++;
//		}
		
		query += " order by motorista.nome";
		
		return findByQuery(query);
	}

	public List<Map<String, String>> buscarVeiculosUtilizados(
			MotoristaTO motoristaTO, PeriodoTO periodoTO) {
		return null;
	}

}